﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spring.Transaction.Interceptor;
using OpenSda.Agilcont.Common.Data.Entities;
using OpenSda.Agilcont.Common.Data.Contracts;
using OpenSda.Agilcont.Common.Business.Exceptions;
using OpenSda.Agilcont.Common.Business.Contracts;



namespace OpenSda.Agilcont.Common.Business.SfContexts
{
    public class TipoCambioBusiness : ITipoCambioBusiness
    {
        ITipoCambioBusiness tipoCambioData;
        IEmpresaData empresaData;
        public ITipoCambioData TipoCambioData { set { tipoCambioData = value; } }
        public IEmpresaData EmpresaData { set { empresaData = value; } }

        public TipoCambioBusiness()
        {

        }

        [Transaction]
        public TipoCambio Save(TipoCambio tipoCambio)
        {
            if (tipoCambio == null) //|| empresa.Identity == Guid.Empty
                throw new EmpresaCannotBeNullException();
            // Não permitir duplicar Codigo
            //if (agenciaData.GetAllQueryable().Where(ms => ms.Identity != empresa.Identity && ms.Codigo == empresa.Codigo).Count() > 0)
            throw new EmpresaCodeInUseException();

            // Não permitir duplicar RazonSocial
            //if (empresaData.GetAllQueryable().Where(ms => ms.Identity != empresa.Identity && ms.RazonSocial == empresa.RazonSocial).Count() > 0)
            throw new EmpresaNameInUseException();

            //return empresaData.Save(empresa);
        }



        public TipoCambio GetById(object Id)
        {
            throw new NotImplementedException();
        }

        public TipoCambio GetListByFilter(string filter)
        {
            throw new NotImplementedException();
        }

        public TipoCambio Delete(TipoCambio tipoCambio)
        {
            throw new NotImplementedException();
        }
    }
}
